import { createApp } from "vue";
import LayoutApp from "./App.vue";
import { router } from "./router/index.js";
import HelperAxios from "axios";
import { HelperCore, HelperWebComm, HelperUserAccount, DataModelDataGroup } from "/util/HelperCore.js";
import { ConfigBiz } from "/util/ConfigBiz.js";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
// 封装拦截器调用
import proxyAxios from '/util/request'
// 在此处编写导航守卫 (Navigation Guards)
router.beforeEach((to,from,next)=>{
    if(to.meta.AuthPolicy !=undefined && to.meta.AuthPolicy ==="NeedLogin"){
        const AccessToken = window.localStorage.getItem("AccessToken");
        if(AccessToken ===null){
          next(  {
            path: '/LayoutViewUserAccount/VerfyUserWebCmd',
        })
        }else{
            next()
        }
    }else{
        next()
    }
})


// // 在此处编写 Axios 拦截器
// const AccessTokens = window.localStorage.getItem("AccessToken");
// const CurrentUserGroup = window.sessionStorage.getItem("jsonArrayUserGroup");
// const CurrentUserGroup1=JSON.parse(CurrentUserGroup);
// const tokens = CurrentUserGroup1[0].NumUserGroup;
// console.log(tokens);
// HelperAxios.interceptors.request.use((config)=>{
//     // console.log(111);
//     config.baseURL= "http://localhost:46204/api"
//         switch(config.method){
//         case 'post':
//         case 'put':
//             if(config.data ===undefined){
//                 config.data={CurrentUserGroup:tokens};
//             }
//             break;
//         case 'get':
//         case 'delete':
//            if(config.params === undefined){
//             config.params={CurrentUserGroup:tokens};
//            }
//            break;
//     }
//     config.headers.authorization = AccessTokens;
//     // console.log(config);
//     return config
// },function(error){
//     return Promise.reject(error)
// })
// // // Axios响应拦截器
// HelperAxios.interceptors.response.use(function(resResult){
//     if (resResult.status == 200) {
//         if (resResult.data.StatusCode == "Success") {
//             // console.log(resResult.data);
//             return  resResult.data
//         } else if (resResult.data.StatusCode == "NullToken") {
//             alert('重新请求')
//         }
//     } else if (resResult.status == 404) {
//         alert('无此接口')
//     } else {
//         alert('网络请求失败')
//     }
// },function(error){
//     return Promise.reject(error)
// })

// 创建一个 Vue 实例.
const AppNew = createApp(LayoutApp);
AppNew.use(router);
AppNew.use(ElementPlus);
AppNew.config.globalProperties.$HelperCore = HelperCore;
AppNew.config.globalProperties.$HelperWebComm = HelperWebComm;
AppNew.config.globalProperties.$HelperUserAccount = HelperUserAccount;
AppNew.config.globalProperties.$DataModelDataGroup = DataModelDataGroup;
AppNew.config.globalProperties.$ConfigBiz = ConfigBiz;
AppNew.config.globalProperties.$HelperAxios = HelperAxios;
// 封装拦截器调用
AppNew.config.globalProperties.$proxyAxios =proxyAxios;
AppNew.mount("#app");
